快如闪电:Linux多线程压缩软件pigz | 您所在的位置:网站首页 › unzip 安卓 › 快如闪电:Linux多线程压缩软件pigz |
pigz充分利用了现代多核CPU的性能,大幅提高压缩解压的速度。 在我的测试中,pigz比Ubuntu默认的压缩方式快了几十倍。 前言我日常使用一台Ubuntu系统的笔电办公、写代码,但有时遇到需要打包并压缩大文件夹的需求(比如把最近下载的几十篇论文资料压缩打包,以便备份),发现Ubuntu默认自带的压缩工具为单线程压缩,不能充分利用笔电的6核12线程处理器,速度非常慢。故寻找了一款强力好用的多线程压缩软件——pigz pigz简介pigz是GZip的并行版(pigz,即 Parallel Implementation of GZip),作者为Mark Adler。 它充分利用了现代多核处理器的性能,大幅提高压缩解压的速度。 pigz主页 pigz-manual-手册页 pigz-GitHub 安装对于Ubuntu: sudo apt install pigzCentos: sudo yum -y install pigz语法pigz [ -cdfhikKlLmMnNqrRtz0..9,11 ] [ -b blocksize ] [ -p threads ] [ -S suffix ] [ name ... ] unpigz [ -cfhikKlLmMnNqrRtz ] [ -b blocksize ] [ -p threads ] [ -S suffix ] [ name ... ]实例压缩单个文件 pigz -k your_file_name加上-k选项保留原始文件,会在当前工作目录获得压缩后的your_file_name.gz 文件 这时候还可以用 pigz -l your_file_name.gz来查看压缩文件后的压缩率 对应的单个文件解压命令则是 unpigz -d your_file_name.gz同样,如果需要保留.gz文件,记得加上-k选项 压缩文件夹 pigz没有压缩文件夹的选项,只能压缩单个文件。若想压缩文件夹,可以结合tar使用: tar -cvf - dir1 dir2 dir3 | pigz > output.tar.gz解压文件夹 pigz -d output.tar.gz这样得到的是output.tar,再通过tar解打包就好了 也可以直接用tar命令解压 tar -xzvf output.tar.gz常用参数-0 ~ -9 压缩等级,数字越大压缩率越高,速度越慢,默认为6-k --keep 压缩后不删除原始文件-l --list 列出压缩输入的内容-K --zip Compress to PKWare zip (.zip) single entry format-d --decompress 解压缩输入-p --processes n 使用n核处理,默认为使用所有CPU核心实验(不具参考性)做个不严谨的小实验,简单试一下pigz到底能有多快(数字看看就好,主要就瞎折腾图一乐) 实验结果(省流省时表格): 压缩方式压缩耗时/ s压缩率/ %解压耗时/ s.tar.xz13873.026.7z13673.117pigz (压缩等级6)开始压缩后30s的CPU负载开始压缩后90s的CPU负载观察CPU负载可以看到是在用单线程进行压缩,每一时刻都只有一个核心的占用率很高 压缩文件耗时:138 s压缩后文件大小: 300.2 MB压缩率:73.0%解压耗时:26 s默认压缩(.7z)类似的,还测试了使用右键压缩为7z格式的时间和压缩率 CPU负载情况和.tar.xz的十分类似,也是只有一个核心在满负载且频繁变化,就不截图了。 压缩文件压缩耗时:136 s压缩后文件大小:300.7 MB压缩率:73.1%解压耗时:17 spigz压缩下面是重头戏,请扶好、坐稳、托腮(以防下巴掉下来) 先试一下默认压缩等级-6 tar -cvf - 论文/ | pigz -6 > 论文.tgz在终端中输入pigz命令在按下Enter键后,啪的一下,很快啊,这个命令就已经执行完了…… 一瞬间…… 执行完了…… 一下子就执行完了pigz压缩时的CPU负载,12个核心负载全部升高压缩等级:6压缩耗时:1.5 s压缩后文件大小:327.2 MB压缩率:79.6%解压耗时:2 s虽然速度已经起飞了,但压缩率跟前面的.7z .tar.xz比还差一些,试试看使用大压缩等级 压缩文件压缩等级:9压缩耗时:2 s压缩后文件大小:327.1 MB压缩率:79.5%解压耗时:2.5 s好吧,并没有看到明显的效果。不过80%这个压缩率也可以接受了。 总结pigz真的是非常强力的工具,如果你的使用场景和我相同:在桌面Linux系统下打包压缩大文件,那一定要尝试一下。但如果是在多核服务器上使用,最好使用-p参数限制一下参与压缩的核心数量,避免所有核心同时高负载对其他服务产生严重影响。 集成到右键菜单如果能把“使用pigz压缩”添加到文件管理器右键菜单,那就更加方便了。 可以安装 Nautilus-actions 来实现添加自定义右键菜单 sudo apt-get install nautilus-actions(未完待续……) 截止到文章发布,我还没有在Nautilus-actions里折腾出来正确的配置。本文的最新更新会首先发布到我的博客,可以点击下面的卡片链接查看 |
CopyRight 2018-2019 实验室设备网 版权所有 |